#include "gather_task.h"

TaskHandle_t gatherHandler;

//初始化采集任务 
void init_gather_task(){

    DHT11_Init();
    ADCx_Init();
    rain_init();
}

//每秒进行一次数据的采集
void gather_task(void* param){

    u16 value;

    while (1)
    {
        GatherData gatherData;
        //进行数据的采集

        //1.温度和湿度采集--DHT协议
        DHT11_Read_Data(&gatherData.temp,&gatherData.humi);
        //2.MQ-2半导体式烟雾传感器（adc操作）
        gatherData.smoke=Get_ADC_Value(ADC_Channel_9,1);
        //3.雨滴采集（简单gpio操作）没有水：1 有水：0
        gatherData.raidrop=RAIN_DATA_READ;
        //4.光照--光敏 pb0 adc（通道8）(adc操作)
        gatherData.sunshine=Get_ADC_Value(ADC_Channel_8,1);

        //数据进行处理
        handlerData(&gatherData);
    








        //进行一次数据的采集
        /*
        //温度和湿度采集--DHT协议
        u8 tem,hui;
        DHT11_Read_Data(&tem,&hui);
        printf("tem=%d , hui=%d \r\n",tem,hui);
        
        //MQ-2半导体式烟雾传感器（adc操作）
       	value=Get_ADC_Value(ADC_Channel_9,1);
        value=value/40;
        if(value>=100)value=100;
        printf("ADC: %d \r\n",value);
       
        //雨滴采集（简单gpio操作）
        printf("value=%d \r\n",RAIN_DATA_READ);

         */
        //光照--光敏 pb0 adc（通道8）(adc操作)
        // value=Get_ADC_Value(ADC_Channel_8,1);//是什么通道，采样时间
        // value=100-value/40;
        // if(value>=100)value=100;
        // printf("ADC: %d \r\n",value);

       //延迟1秒
        vTaskDelay(1000);
    }
}

void create_gather_task(){
    //创建一个任务  这个任务的目的就是去创建其他的任务
    //创建任务
    BaseType_t res= xTaskCreate(gather_task,
                "gather_task",
                128,
                NULL,
                2,
                &gatherHandler);

    if(res==pdPASS){
        printf("gather_task create success! \r\n");
    }else{
        printf("gather_task create error! \r\n");
    }
}
